﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Content;

namespace Projeto
{
    public class TelaCredito : Tela
    {
        private static int INTERVALO_TITULO = 50;

        private Texture2D textura; // Imagem de fundo da cena
        private MouseState midEstadoMouse; // Último botão pressionado
        private Rectangle BackToIntro;
        SpriteFont btn_voltar;
        SoundEffect Click;

        public TelaCredito(Jogo jogo)
            : base(jogo)
        {
            // Carrega a imagem do jogo
            this.textura = jogo.Content.Load<Texture2D>("Cartas/background_creditos");

            //Carrega efeito de Click
            this.Click = jogo.Content.Load<SoundEffect>("Som/Efeitos Sonoros/click_normal");

            // Carrega fonte do título do jogo
            this.btn_voltar = jogo.Content.Load<SpriteFont>("Fonts/gameFont");

            // Recebe o estado do mouse
            this.midEstadoMouse = Mouse.GetState();
        }

        public override void Update(Microsoft.Xna.Framework.GameTime tempoJogo)
        {
            // Declara uma variável para quardar qual tecla foi precionada
            KeyboardState teclado;
            MouseState keyState = Mouse.GetState();
            teclado = Keyboard.GetState();

            // Verifica se foi pressionado a tecla I foi precionada, se sim volta para a tela intro
            if (teclado.IsKeyDown(Keys.Back))
            {
                // Troca de Cena (tela do jogo)
                jogo.gerenciadorTelas.MudaTela(EstadoJogo.Intro);
            }

            if (keyState.LeftButton == ButtonState.Pressed)
            {
                if (BackToIntro.Contains(keyState.X, keyState.Y))
                {
                    jogo.gerenciadorTelas.MudaTela(EstadoJogo.Intro);
                    Click.Play();
                }
            }

           

            base.Update(tempoJogo);
        }

        public override void Draw(Microsoft.Xna.Framework.GameTime tempoJogo)
        {
            string frase = "=(";

            // Desenha a tela de fundo
            spriteBatch.Draw(textura, Vector2.Zero, Color.White);

            // Posição do botão
            Vector2 posicaoTituloJogo = new Vector2(
                jogo.Window.ClientBounds.Width / 2 - btn_voltar.MeasureString(frase).X / 2,
                jogo.Window.ClientBounds.Height / 2);

            // Desenha o botão para voltar pra intro
            Vector2 posicaoTituloJogar = posicaoTituloJogo;
            posicaoTituloJogar.Y = posicaoTituloJogo.Y + INTERVALO_TITULO;
            spriteBatch.DrawString(btn_voltar, "Voltar", posicaoTituloJogar, Color.Navy);
            BackToIntro = new Rectangle(
                (int)posicaoTituloJogar.X,
                (int)posicaoTituloJogar.Y,
                (int)btn_voltar.MeasureString("Voltar").X,
                (int)btn_voltar.MeasureString("Voltar").Y);

            base.Draw(tempoJogo);
        }
    }
}
